Use node effects to apply post-processing effects to 2D nodes. More...
#include <kanzi/core.ui/node/node_effect2d.hpp>
Public Member Functions | |
void | attach (Node *node) |
Attaches the node effect. | |
BindingLookupContextPtr | createLookupContext (NodeEffect2DSharedPtr templateRoot) |
Creates a lookup context for a given effect. | |
NodeEffectRenderer2DUniquePtr | createRenderer () |
Creates a renderer instance. | |
void | detach () |
Detaches the node effect. | |
unsigned int | getEffectPaddingChangeCounter () const |
Gets the effect quad padding change counter. | |
Vector4 | getEffectQuadPadding () const |
Gets the effect quad padding. | |
Vector2 | getEffectQuadPaddingOffset () const |
Gets the effect quad offset relative relative to the top-left corner of the node. | |
Vector2 | getEffectQuadPaddingSize () const |
Gets the effect quad padding size. | |
bool | getEnabled () const |
Gets the value of EnabledProperty. | |
Node * | getHostNode () const |
Gets the node that hosts the effect. | |
NodeEffect2D * | getParent () const |
Gets the parent of a node effect. | |
NodeEffectRenderer2D * | getRendererInstance () const |
Gets a pointer to NodeEffectRenderer2D instance or null pointer if none exists. | |
NodeEffect2DSharedPtr | getTemplateRoot () const |
Gets the template root of this node effect. | |
bool | isAlphaRequired () const |
Indicates whether the effect requires alpha channel for the result. | |
bool | isAttached () const |
Returns whether a node effect is attached to a node. | |
bool | isAttaching () const |
Returns whether a node effect is attaching to a node. | |
bool | isDetached () const |
Returns whether a node effect is detached from a node. | |
bool | isDetaching () const |
Returns whether a node effect is detaching from a node. | |
bool | isRenderingRequired () |
Indicates whether the effect requires rendering. | |
ObjectSharedPtr | lookupObject (string_view relativePath) |
Lookup for an object from the effect. | |
template<typename T > | |
shared_ptr< T > | lookupObject (string_view relativePath) |
Lookup a relative object of a given type. | |
void | setEffectPaddingChangeCounter (unsigned int value) |
Sets the effect quad padding change counter. | |
void | setEnabled (bool value) |
Sets the value of EnabledProperty. | |
void | setParent (NodeEffect2D *parent) |
Sets the parent of a node effect. | |
void | setTemplateRoot (NodeEffect2DSharedPtr templateRoot) |
Sets the template root for this node effect. | |
void | unregisterEffectRenderer (NodeEffectRenderer2D *effectRenderer) |
Unregister effect renderer. | |
~NodeEffect2D () | |
Public Member Functions inherited from kanzi::Resource | |
virtual unsigned int | getCPUMemoryUsage () const |
Function for getting the memory usage of a resource. | |
const string & | getName () const |
Gets the resource name. | |
const string & | getUrl () const |
Gets the resource URL. | |
bool | isKeepAlive () const |
Tells if the resource has keep alive flag set. | |
void | reload () |
void | reloadFromFile (string_view filePath) |
void | reloadFromKzb (KzbFile &kzbFile, ReadOnlyMemoryFile &file, KzbMemoryParser &parser) |
void | setKeepAlive (bool keepAlive) |
Sets the keep alive flag. | |
void | setUrl (string_view url) |
Sets the resource URL. | |
~Resource () override | |
Destructor. | |
Public Member Functions inherited from kanzi::Object | |
AppliedStyleEntrySharedPtr | applyObjectStyle (kanzi::StyleSharedPtr style) |
Applies a style to an object. | |
void | applyObjectStyles () |
Apply all styles for an object node. | |
Domain * | getDomain () const |
Returns the domain the object belongs to. | |
const Metaclass * | getDynamicMetaclass () const override |
Returns the metaclass of the dynamic type of the object. | |
MainLoopScheduler * | getMainLoopScheduler () const |
Returns the MainLoopScheduler instance of the associated Domain. | |
detail::MessageDispatcher * | getMessageDispatcher () const |
Returns the message dispatcher of the object. | |
ResourceManager * | getResourceManager () const |
Returns the resource manager of the object. | |
ScriptingContextSharedPtr | getScriptingContext () const |
Gets the scripting context of the object. | |
Object (Domain *domain) | |
void | setScriptingContext (ScriptingContextSharedPtr context) |
Sets the scripting context of the object. | |
void | unapplyObjectStyle (AppliedStyleEntrySharedPtr appliedStyleEntry) |
void | unapplyObjectStyles () |
Unapplies and removes all applied styles. | |
~Object () override | |
Public Member Functions inherited from kanzi::MetaObject | |
bool | isTypeOf (const Metaclass *objectType) const |
Determines if the type of this object is the given type or derived from it. | |
virtual | ~MetaObject () |
Public Member Functions inherited from kanzi::PropertyObject | |
template<typename DataType > | |
void | addPropertyModifier (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::ModifierCallback callback, void *owner) |
template<typename DataType > | |
void | addPropertyModifierWithoutNotifyingHandlers (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::ModifierCallback callback, void *owner) |
Adds a property modifier without notifying handlers. | |
template<typename DataType > | |
void | addPropertyNotificationHandler (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::NotificationCallback callback, void *owner) |
template<typename DataType > | |
void | addPropertyValueSource (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::TypedValueSource *valueSource, PropertyValuePrecedence precedence, AbstractPropertyTypeDescriptor::ValueSourceOwner *owner) |
template<typename DataType > | |
void | addPropertyValueSource (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::TypedValueSource *valueSource, PropertyValuePrecedence precedence, void *ownerPointer) |
PropertyStorageContainer::iterator | beginPropertyStorage () |
Returns the begin iterator to the internal property storage container. | |
PropertyStorageContainer::const_iterator | beginPropertyStorage () const |
Returns the begin iterator to the internal property storage container. | |
void | clearPropertyFlag (AbstractPropertyType propertyType, uint32_t flag) |
void | copyLocalValue (const PropertyObject &other, AbstractPropertyType propertyType) |
Copies local value of single property from another object. | |
void | copyLocalValues (const PropertyObject &other) |
Copies all local values from another object. | |
PropertyStorageContainer::iterator | endPropertyStorage () |
Returns the end iterator to the internal property storage container. | |
PropertyStorageContainer::const_iterator | endPropertyStorage () const |
Returns the end iterator to the internal property storage container. | |
template<typename DataType > | |
PropertyType< DataType >::Traits::ReturnType | getAbstractProperty (AbstractPropertyType abstractPropertyType) const |
template<typename DataType > | |
PropertyType< DataType >::Traits::ReturnType | getAbstractPropertyBase (AbstractPropertyType abstractPropertyType) const |
template<typename DataType > | |
optional< typename PropertyType< DataType >::Traits::ReturnType > | getOptionalAbstractProperty (AbstractPropertyType abstractPropertyType) const |
template<typename DataType > | |
optional< typename PropertyType< DataType >::Traits::ReturnType > | getOptionalProperty (const PropertyType< DataType > &propertyType) const |
Evaluates the property value in the same way as the overload above but does not default to the value in property metadata if there are no inputs to the property value. | |
template<typename DataType > | |
optional< typename PropertyType< DataType >::Traits::ReturnType > | getOptionalPropertyBase (const PropertyType< DataType > &propertyType) const |
Returns the current value of a property disregarding modifiers, but does not default to the value in property metadata if there are no inputs to the property value. | |
template<typename DataType > | |
PropertyType< DataType >::Traits::ReturnType | getProperty (const PropertyType< DataType > &propertyType) const |
Returns the current value of a property type. | |
template<typename DataType > | |
PropertyType< DataType >::Traits::ReturnType | getPropertyBase (const PropertyType< DataType > &propertyType) const |
Returns the current value of a property disregarding modifiers. | |
template<typename DataType > | |
size_t | getPropertyNotificationHandlerCount (const PropertyType< DataType > &propertyType) const |
Gets number of current notification handlers for given property type. | |
bool | hasBaseValue (AbstractPropertyType propertyType) const |
Evaluates whether there are any inputs into the property value, disregarding modifiers. | |
bool | hasLocalValue (AbstractPropertyType propertyType) const |
Evaluates whether there is a local value set for the property. | |
bool | hasNonClassValue (AbstractPropertyType propertyType) const |
Evaluates whether there is a value of any precedence higher than class default value set for the property. | |
bool | hasValue (AbstractPropertyType propertyType) const |
Evaluates whether there are any inputs into the property value. | |
bool | isPropertyFlagSet (AbstractPropertyType propertyType, uint32_t flag) const |
PropertyObject () | |
void | removeKzbProperties () |
Remove all KZB properties. | |
void | removeKzbProperties (flat_set< AbstractPropertyType > *keepProperties) |
Remove all KZB properties that are not included in a given set. | |
template<typename DataType > | |
void | removeLocalPropertyValueSource (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::TypedValueSource *valueSource, void *ownerPointer) |
void | removeLocalValue (AbstractPropertyType propertyType) |
Removes the local value associated with the property. | |
template<typename DataType > | |
void | removePropertyModifier (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::ModifierCallback callback, void *owner) |
template<typename DataType > | |
void | removePropertyNotificationHandler (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::NotificationCallback callback, void *owner) |
template<typename DataType > | |
void | removePropertyValueSource (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::TypedValueSource *valueSource, void *ownerPointer) |
template<typename DataType > | |
void | setAbstractProperty (AbstractPropertyType abstractPropertyType, typename PropertyType< DataType >::Traits::ParameterType value) |
template<typename DataType > | |
void | setProperty (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Traits::ParameterType value) |
Sets the local value of a property type. | |
void | setPropertyFlag (AbstractPropertyType propertyType, uint32_t flag) |
KZ_DEPRECATED void | validatePropertyModifiers (AbstractPropertyType propertyType) |
Validates property modifiers and notifies handlers. | |
void | validatePropertyModifiersAndNotifyHandlers (AbstractPropertyType propertyType) |
Validates property modifiers and notifies handlers. | |
virtual | ~PropertyObject () |
Public Member Functions inherited from kanzi::BindingHostConceptImpl< NodeEffect2D > | |
void | addBindingRuntime (AbstractBindingRuntimeSharedPtr entry, shared_ptr< void > owner) |
Adds an already-created binding runtime to this binding host. | |
BindingRuntimeHandle | setBinding (AbstractBindingSharedPtr binding) |
Wrapper for setting a binding with no target. | |
BindingRuntimeHandle | setBinding (AbstractBindingSharedPtr binding, AbstractPropertyType propertyType) |
Wrapper for setting a binding. | |
BindingRuntimeHandle | setBinding (AbstractBindingSharedPtr binding, AbstractPropertyType propertyType, PropertyField field) |
Wrapper for setting a binding. | |
BindingRuntimeHandle | setBinding (AbstractBindingSharedPtr binding, AbstractPropertyType propertyType, PropertyField field, PropertyValuePrecedence precedence) |
Wrapper for setting a binding. | |
BindingRuntimeHandle | setBinding (AbstractBindingSharedPtr binding, AbstractPropertyType propertyType, PropertyValuePrecedence precedence) |
Wrapper for setting a binding. | |
BindingRuntimeHandle | setBinding (AbstractBindingSharedPtr binding, shared_ptr< NodeEffect2D > templateRoot) |
Sets a binding with no target. | |
BindingRuntimeHandle | setBinding (AbstractBindingSharedPtr binding, shared_ptr< NodeEffect2D > templateRoot, AbstractPropertyType propertyType, PropertyField field) |
Wrapper for setting a binding. | |
BindingRuntimeHandle | setBinding (AbstractBindingSharedPtr binding, shared_ptr< NodeEffect2D > templateRoot, AbstractPropertyType propertyType, PropertyField field, PropertyValuePrecedence precedence) |
Wrapper for setting a binding. | |
BindingRuntimeHandle | setBinding (AbstractBindingSharedPtr binding, shared_ptr< NodeEffect2D > templateRoot, AbstractPropertyType propertyType, PropertyValuePrecedence precedence) |
Wrapper for setting a binding. | |
BindingRuntimeHandle | setBindingWithOwner (AbstractBindingSharedPtr binding, shared_ptr< void > owner) |
Wrapper for setting a binding with no target. | |
BindingRuntimeHandle | setBindingWithOwner (AbstractBindingSharedPtr binding, shared_ptr< void > owner, AbstractPropertyType propertyType) |
Wrapper for setting a binding with owner. | |
BindingRuntimeHandle | setBindingWithOwner (AbstractBindingSharedPtr binding, shared_ptr< void > owner, AbstractPropertyType propertyType, PropertyField field, PropertyValuePrecedence precedence) |
Wrapper for setting a binding with owner. | |
BindingRuntimeHandle | setBindingWithOwner (AbstractBindingSharedPtr binding, shared_ptr< void > owner, shared_ptr< NodeEffect2D > templateRoot) |
Sets a binding with no target. | |
BindingRuntimeHandle | setBindingWithOwner (AbstractBindingSharedPtr binding, shared_ptr< void > owner, shared_ptr< NodeEffect2D > templateRoot, AbstractPropertyType propertyType, PropertyField field, PropertyValuePrecedence precedence) |
Sets a binding to a certain property. | |
BindingRuntimeHandle | setModifierBinding (AbstractBindingSharedPtr binding, AbstractPropertyType propertyType) |
Wrapper for setting a modifier binding. | |
BindingRuntimeHandle | setModifierBinding (AbstractBindingSharedPtr binding, AbstractPropertyType propertyType, PropertyField field) |
Wrapper for setting a modifier binding. | |
BindingRuntimeHandle | setModifierBinding (AbstractBindingSharedPtr binding, shared_ptr< NodeEffect2D > templateRoot, AbstractPropertyType propertyType, PropertyField field) |
Wrapper for setting a modifier binding. | |
BindingRuntimeHandle | setModifierBindingWithOwner (AbstractBindingSharedPtr binding, shared_ptr< void > owner, AbstractPropertyType propertyType) |
Wrapper for setting a modifier binding. | |
BindingRuntimeHandle | setModifierBindingWithOwner (AbstractBindingSharedPtr binding, shared_ptr< void > owner, AbstractPropertyType propertyType, PropertyField field) |
Wrapper for setting a modifier binding. | |
BindingRuntimeHandle | setModifierBindingWithOwner (AbstractBindingSharedPtr binding, shared_ptr< void > owner, shared_ptr< NodeEffect2D > templateRoot, AbstractPropertyType propertyType, PropertyField field) |
Sets a modifier binding. | |
Public Member Functions inherited from kanzi::BindingHostConcept | |
BindingRuntimeConstIterator | beginBindingRuntimes () const |
Returns an iterator to the beginning of binding runtimes. | |
BindingRuntimeConstIterator | endBindingRuntimes () const |
Returns an iterator to the end of binding runtimes. | |
AbstractBindingRuntimeSharedPtr | getBindingRuntime (size_t idx) |
Gets binding by index. | |
size_t | getBindingRuntimeCount () const |
Gets the number of binding runtimes added to this node. | |
void | removeAllBindings () |
Removes all binding runtimes. | |
void | removeBinding (BindingRuntimeHandle &bindingRuntime) |
Removes a binding runtime added earlier. | |
void | removeBindingsWithOwner (shared_ptr< void > owner) |
Removes all binding runtimes with the specified owner. | |
Static Public Attributes | |
static PropertyType< bool > | EnabledProperty |
Sets whether the effect is enabled. | |
Additional Inherited Members | |
Public Types inherited from kanzi::PropertyObject | |
typedef PropertyStorageContainer::const_iterator | PropertyStorageConstIterator |
typedef vector< PropertyStoragePtr > | PropertyStorageContainer |
typedef PropertyStorageContainer::iterator | PropertyStorageIterator |
typedef intrusive_ptr< AbstractPropertyTypeDescriptor::PropertyStorage > | PropertyStoragePtr |
typedef PropertyStorageContainer::reverse_iterator | PropertyStorageReverseIterator |
Public Types inherited from kanzi::BindingHostConcept | |
using | BindingHostConceptSharedPtr |
Binding host concept shared pointer type. | |
using | BindingRuntimeConstIterator |
Const iterator for binding runtimes. | |
using | BindingRuntimeContainer |
Container for binding runtimes. | |
using | BindingRuntimeIterator |
Iterator for binding runtimes. | |
Static Public Member Functions inherited from kanzi::Object | |
static const Metaclass * | getStaticMetaclass () |
Returns the metaclass of Object class. | |
static PropertyTypeEditorInfoSharedPtr | makeEditorInfo () |
Default implementation that returns empty editor info. | |
Static Public Member Functions inherited from kanzi::MetaObject | |
static const Metaclass * | getStaticMetaclass () |
Returns the metaclass of Object class. | |
static PropertyTypeEditorInfoSharedPtr | makeEditorInfo () |
Default implementation that returns empty editor info. | |
Protected Types inherited from kanzi::Object | |
typedef vector< AppliedStyleEntrySharedPtr > | AppliedStyleContainer |
Applied style container. | |
Protected Attributes inherited from kanzi::Object | |
AppliedStyleContainer | m_appliedStyles |
Listing of applied styles applied to this object. | |
Protected Attributes inherited from kanzi::BindingHostConcept | |
BindingRuntimeContainer | m_bindingRuntimes |
Bindings in this object. | |
Use node effects to apply post-processing effects to 2D nodes.
To create an effect:
To assign an effect to a 2D node:
To set the effect properties:
To set multiple nodes to use the same effect:
To enable and disable an effect:
To create an effect type:
To use bindings with effects:
kanzi::NodeEffect2D::~NodeEffect2D | ( | ) |
|
explicitprotected |
|
inline |
NodeEffectRenderer2DUniquePtr kanzi::NodeEffect2D::createRenderer | ( | ) |
Creates a renderer instance.
Only single renderer instance may exist.
|
inline |
Gets the effect quad padding.
|
inline |
Gets the effect quad offset relative relative to the top-left corner of the node.
|
inline |
Gets the effect quad padding size.
Effect quad padding size defines how much the node quad size increases because of the effect padding.
Gets the effect quad padding change counter.
Kanzi updates the effect quad change count when the effect padding changes.
Sets the effect quad padding change counter.
value | Effect padding change counter value. |
|
inline |
Indicates whether the effect requires alpha channel for the result.
|
inline |
Unregister effect renderer.
Effect renderer is automatically registered by NodeEffect2D::createRenderer() and unregistered by the NodeEffectRenderer2D destructor.
effectRenderer | Effect renderer pointer to unregister. |
|
inline |
Indicates whether the effect requires rendering.
Some effect property values can eliminate the need to render the effect. Typically this reflects a situation where the effect has no visible impact.
|
inline |
Gets a pointer to NodeEffectRenderer2D instance or null pointer if none exists.
BindingLookupContextPtr kanzi::NodeEffect2D::createLookupContext | ( | NodeEffect2DSharedPtr | templateRoot | ) |
Creates a lookup context for a given effect.
templateRoot | Template root for given effect. |
|
inline |
Gets the template root of this node effect.
Kanzi uses the template root internally in template root bindings.
|
inline |
Sets the template root for this node effect.
Kanzi uses the template root internally in template root bindings.
bool kanzi::NodeEffect2D::isAttached | ( | ) | const |
Returns whether a node effect is attached to a node.
bool kanzi::NodeEffect2D::isAttaching | ( | ) | const |
Returns whether a node effect is attaching to a node.
bool kanzi::NodeEffect2D::isDetached | ( | ) | const |
Returns whether a node effect is detached from a node.
bool kanzi::NodeEffect2D::isDetaching | ( | ) | const |
Returns whether a node effect is detaching from a node.
|
inline |
Gets the parent of a node effect.
|
inline |
Sets the parent of a node effect.
parent | The parent node effect. |
ObjectSharedPtr kanzi::NodeEffect2D::lookupObject | ( | string_view | relativePath | ) |
Lookup for an object from the effect.
The object can be another effect, a node, or a resource within a node.
relativePath | Relative path to use for lookup. |
|
inline |
Lookup a relative object of a given type.
If the object is found but it is not of the given type, the search fails.
Attaches the node effect.
node | Optional pointer to the node that hosts the effect. |
void kanzi::NodeEffect2D::detach | ( | ) |
Detaches the node effect.
Node * kanzi::NodeEffect2D::getHostNode | ( | ) | const |
Gets the node that hosts the effect.
|
protectedpure virtual |
Creates a renderer instance.
Only single renderer instance may exist.
Implemented in kanzi::BlurEffect2D, kanzi::EffectStack2D, kanzi::MaskEffect2D, kanzi::OutlineEffect2D, and kanzi::ShadowEffect2D.
Initializes a previously created renderer instance.
Implemented in kanzi::BlurEffect2D, kanzi::EffectStack2D, kanzi::MaskEffect2D, kanzi::OutlineEffect2D, and kanzi::ShadowEffect2D.
Implementation-dependent check on whether effect rendering is required.
The default implementation always returns true. Individual effects must override this function to turn themselves off.
Reimplemented in kanzi::BlurEffect2D, kanzi::EffectStack2D, kanzi::OutlineEffect2D, and kanzi::ShadowEffect2D.
|
inlineprotected |
Sets the padding required by the effect around the node bounds during the rendering of the effect.
Kanzi accounts for the effect quad padding when determining the visibility of the node.
Sets the framebuffer alpha channel requirements of the effect.
required | If the effect rendering requires alpha channel and blending, true, otherwise false. |
|
protectedvirtual |
Lookup for an object from the effect.
The object can be another effect, a node, or a resource within a node.
initialPart | The leading part of the relative path before the first slash. |
remainingPart | The trailing part of the relative part after the first slash. |
Reimplemented in kanzi::EffectStack2D.
|
overrideprotectedvirtual |
PropertyObject::onPropertyChanged implementation.
Reimplemented from kanzi::PropertyObject.
Reimplemented in kanzi::OutlineEffect2D, and kanzi::ShadowEffect2D.
|
static |
Sets whether the effect is enabled.
The default value is true.